package com.wosai.medical.hospital.demo.controller.register.response;

import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("号源信息")
public class Schedules implements Serializable {
    /**
     * 号源日期(yyyy-MM-dd)
     */
    private String scheduleDate;

    /**
     * 科室集合
     */
    List<Depts> depts;


    @Data
    @Builder
    @ApiModel("科室列表")
    public static class Depts implements Serializable {
        /**
         * 科室分类代码
         */
        private String code;
        /**
         * 科室分类名称
         */
        private String name;

        /**
         * 医生集合
         */
        List<Doctors> doctors;


    }

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @ApiModel("医生信息")
    public static class Doctors implements Serializable {
        /**
         * 医生类别(1:医生,2:医生专科)
         */
        private Integer category;
        /**
         * 医生代码
         */
        private String code;

        /**
         * 医生名称
         */
        private String name;
        /**
         * 医生职称
         */
        private String title;
        /**
         * 性别(0:未知,1:男,2:女)
         */
        private Integer gender;
        /**
         * 医生擅长[可空]
         */
        private String skill;
        /**
         * 医生简介[可空]
         */
        private String intro;
        /**
         * 医生照片上传码[可空]
         */
        private String pic;

        /**
         * 就诊时段集合
         */
        private List<Schedule> schedules;

    }

    @Data
    @Builder
    @ApiModel("就诊时段集合")
    public static class Schedule implements Serializable {
        /**
         * 排班ID(由HIS产生,挂号原样返回)
         */
        private String id;
        /**
         * 时段值(由HIS产生,挂号原样返回)
         */
        private String timeFlag;
        /**
         * 时段名,用于显示字符串
         */
        private String timeName;
        /**
         * 开始时间(HH:mm)[可空]
         */
        private String beginTime;

        /**
         * 结束时间(HH:mm)[可空]
         */
        private String endTime;

        /**
         * 号源总数[可空]
         */
        private Integer totals;

        /**
         * 剩余可预约号源数
         */
        private Integer surpluses;
        /**
         * 挂号费
         */
        private Long regFee;
        /**
         * 诊疗费[可空]
         */
        private Long treatFee;
        /**
         * 总费用
         */
        private Long totalFee;
    }


}
